共计 4152 个字符,预计需要花费 11 分钟才能阅读完成。
引入
1.Windows 与 Linux 目录结构对比
- Windows: 以多根的形式组织文件: C:\, D:\, E:\, F:\ ...
- Linux: 以单根的形式组织文件: /
2. 路径
- 绝对路径: 完整的路径(从根开始)
- 相对路径: 不完整的路径(从当前目录开始找)
例子:
🐽假设你所处的位置是: 地球 --> 中国 --> 上海 --> 青浦区 --> 华徐公路 -->e 通世界园 --> 一间办公室
🐽那么一个外星人想要找到你, 就需要按照上面的路径去寻找你 ----> 绝对路径
🐽如果一个人他就在华徐公路, 那么他就可以直接从华徐公路开始找 ----> 相对路径
3. 文件处理
-
重要思想: 一切皆文件
-
文件的创建, 复制, 移动, 删除
- vim 文件编辑器常用方法
一. 系统目录介绍
- 目录就是文件夹---> 存放的是具体哪些文件
- 文件 存放的是具体的数据
1. 存放命令相关的目录
-
/bin: 存放普通用户使用的命令, /bin/ls, /bin/date
-
/sbin: 存放管理员使用的命令 , /sbin/useradd(创建用户)
2.''~'' 家目录
- /home: 普通用户的家目录, 默认为 /home/[用户名]
- /root: 超级管理员的家目录, 普通用户是无法操作的
- "~": 代表的就是当前用户的家目录
3. 系统文件目录
- /usr: 相当于C:\Windows
- /usr/local: 软件安装的目录, 相当于C:\Program
- /usr/bin: 普通用户使用的应用程序
- /usr/sbin: 管理员用户使用的应用程序
- /usr/lib: 库文件 Glibc 32bit
- /usr/lib4: 库文件 Glibc 64bit
4. 启动目录
- /boot: 存放启动相关的文件, (kernel, grub)引导装载程序
5. 配置文件目录
- /etc: 比较重要的目录, 后续所有服务的配置文件都存放在这
- /etc/hostname: 主机名的配置文件
- /etc/sysconfig/network-scripts/ifcfg-[网卡名]: 网卡的配置文件
- /etc/resolv.conf: 指定远程的 DNS 地址配置文件
- /etc/hosts: 本机的域名解析文件
与网络参数优化相关的文件都在该目录下:
#cd /proc/sys/net/ipv4
6. 设备目录文件
-
/dev: 存放设备文件 (硬盘, 硬盘分区, 光驱等)
-
/dev/sr0: 光驱设备的名称:The first SCSI ROM
-
/dev/cdrom: 光盘设备: 光盘里存放的内容都在这里
js
🐑就比如我们的 VMware 安装 Linux 时是选择最小化安装
🐑但是完整的配置文件或者许多软件包都还在光盘里面
🐑以后用来为我们的操作系统补充包 ---> 加油站一样
- /dev/null: 黑洞文件, 只进不出, 把不想要显示的内容丢入黑洞(比如执行一条命令的结果是不想要的 / 不需要的)
- /dev/random: 生成随机数的设备
- /dev/zero: 可以源源不断的生成数据, 就像取款机, 随时随地取钱
- /dev/pts: 虚拟的 Bash Shell 终端, 提供远程用户使用, 0 代表第一个终端, 1 代表第二个终端, 以此类推
- /dev/stderr: 标准错误输出
- /dev/stdin: 标准输入
- /dev/stdout: 标准输出
7. 挂载目录 (主要指存储设备)
- /mnt: 手工挂载设备的挂载点
- /opt: 早期第三方软件存放的目录
- /media: 移动设备的默认挂载点
8. 临时目录和可变目录
- /var: 存放一些变化的文件 (数据, 日志, 邮件), 比如
/var/log
下的 日志文件
随便查看一个日志的前 4 行内容:
变化文件如下:
mysql: /var/lib/mysql
vsftpd: /var/ftp
mail: /var/spool/mail
cron: /var/spool/cron
log: /var/log #系统日志文件存放目录
/var/tmp #临时文件(主要是程序产生的临时文件)
- /tmp: 系统临时目录(像公共厕所)
系统会定时的删除该目录下长时间没有访问的文件
- /var/tmp: 进程产生的临时文件
二. 路径
1. 绝对路径 : 路径是从根 ("/") 开始
- Linux 系统: /a/b/c/d/e.txt
- Windows 系统 : C:\a\b\c\d\e.txt
2. 相对路径 : 路径是相对于当前路径开始的
- Linux 系统: b/c/d/e.txt
- Windows 系统: b\c\d\e.txt
3. 每一个目录下都有一个 .
和 ..
这两个目录
.
: 一个点代表的是当前的目录..
: 两个点代表的是上一级目录
三. 文件管理基础命令
1. 切换目录 : cd
# cd 绝对路径 cd /etc/hostname
# cd 相对路径 cd test/abc
# cd #切换目录,例: cd /etc
# cd - #切换回上一次所在的目录
# cd ~ #切换回当前用户的家目录
# cd . #代表当前目录, 没有效果
# cd .. #切换回当前目录的上级目录
2. 查看当前目录 : pwd
# pwd #查看当前所在的文件夹
3.ls
# ls -l [文件] #查看的文件夹下的子文件与子文件夹的列表信息
# ls -dl [文件夹] #查看指定的文件夹的列表信息
# ls -a [文件夹] #查看包括隐藏文件在内的所有文件
-
文件类型
🔴使用 "ls -l" 显示出来的文件:
🔵以 "-" 开头: 可以是普通文件(文本, 二进制, 压缩包, 图片, 日志等), "ls" 就是一个二进制文件
🔵以 "d" 开头: 是一个目录或者文件夹
🔵以 "l" 开头: 是一个软连接
- 例
-rwxr-xr-x. 1 root root 117680 10 月 31 2018 /bin/ls
-: 文件类型
rwx: 属主 --->root
-xr: 属组 --->root
r-x: 其他
. : 在加载了 selinux 情况下创建的文件
1 : 硬链接数
ps: Linux 系统不是以文件的后缀名来区分文件类型的,而是以 ls -l 的首位来区分
4. 查看目录树tree
需要先安装 tree 命令,执行 yum install tree y
# tree -a [目录] #显示所有文件,包括隐藏文件
# tree-d [目录] #只显示子目录
# tree -L 1 [目录] #- L 遍历目录的最大层数,- L 后应该是大于 0 的正整数
# tree -F [目录] # - F 在条目后加上文件类型的指示符号
#例如会在显示出的目录后面加上左斜杠 /
5. 文件创建touch
# touch file #无则创建, 有则修改时间
# touch file2 file3 #同时创建 2,3 这两个文件
# touch /home/od/file4 file5 #使用了绝对路径创建
# touch file{a,b,c}.txt #{}集合,等价 touch a.txt b.txt c.txt
# touch file{1..10} #创建了 1~10 个文件
# touch file{a..z} # a~z 个文件
6. 目录创建mkdir
常用选项:-v 显示详细信息 -p 递归创建目录
# mkdir [目录名]
# mkdir /home/shawn/dir1 /home/shawn/dir2
# mkdir -v /home/shawn/{aaa,bbb} #会显示创建信息
# mkdir -pv /home/ooo/iii/{ccc,ddd} #没有的目录会递归创建
7. 复制文件cp
常用选项:-v: 详细显示命令执行的操作
-r: 递归处理目录与子目录
-p: 保留源文件或目录的属性
-f: 强制复制
# cp [源文件] [目标文件]
# cp name /tmp/name #不修改名称
# cp file /tmp/ #不修改名称
# cp -a file /tmp/file_p #- a 保持原文件或目录的所有属性
# cp -r /etc/ /tmp/ #复制目录需要使用 - r 参数, 递归复制
# cp -rv /etc/hosts /etc/hostname /tmp #拷贝多个文件至一个目录
# cp -rf ...👇👇👇
⛅"-f" 参数是强制复制
条件是:1. 源文件在目标目录中有同名的文件
2. 用户对目标文件只有读的权限
3. 对目标文件所在的目录具有写和执行的权限
4. 然后就会先删除目标文件, 在把源文件复制进去
⛅比如你在 "b" 文件夹里面有个文件名叫 "1.txt"
⛅然后你把 "c" 文件夹里面的另一个文件名叫 "1.txt" 的复制到 "b" 里面
⛅这个时候会照成冲突, 然后会提示你要不要继续复制. 加上 "-f" 就不会提示你了
🌟如果还是会提醒是因为:
🌟有的系统在安装的时候,"cp - i" 的 alias 就是 cp
🌟也就是说你在执行 cp 的时候,其实是执行的 cp -i
🌟取消掉 cp 的 alias 就好了:
🌞可以使用:"unalias" 取消
🌞"\cp" 取消
🌞或者直接使用命令 "cp" 的绝对路径执行
8. 移动或重命名mv
# mv [源文件] [目标文件]
# mv file1 file2 #在当前位置移动就是重命名, 将 file1 命名成 file2
# mv file1 /home #将 file1 移动到 "/home" 中
# mv a1 a2 a3 /home #将多个文件移动到 "/home" 中
# mv /root/dir1 ./ #将 "/root" 下的 "dir1" 目录移到当前目录下
# mv dir/ dir2/ dir3/ /root #将多个目录移动到 "/root" 下
9. 删除rm
常用选项: -r : 递归, -f :force 强制, -v : 详细过程
# rm -rf [任何文件或目录]
四. 查看文件内容(文本文件)
1. 查看cat
# cat 1.txt #正常查看文件方式
# cat -n 1.txt #- n 显示文件有多少行
# cat -A 1.txt #查看文件的特殊符号, 比如文件中存在 tab 键
# tac 1.txt #倒序查看文件
2. 从头部 head
和从尾部 tail
查看
🐼从头部 "head"
# head 1.txt #默认查看 10 行
# head -2 1.txt #查看前两行(可以自定义)
🐼从尾部 "tail"
# tail 1.txt #默认从尾部查看 10 行
# tail -2 1.txt #查看尾部两行(可以自定义)
🔴# tail -f 1.txt #动态查看文件的尾部
# tailf 1.txt #效果与上面一样
3. 翻页查看 more
和less
# less 1.txt #使用光标上下翻动,空格进行翻页,q 退出
# more 1.txt #使用回车上下翻动,空格进行翻页,q 退出
# most +40 1.txt #从第 40 行开始查看
4. 过滤文件内容grep
# grep 'song' 1.txt #匹配有 "song" 的行
# grep '^shawn' 1.txt #匹配以 "shawn" 开头的行
# grep 'xing$' 1.txt #匹配以 "xing" 结尾的行
# grep -i 'xing' 1.txt #不分大小写的匹配有 "xing" 的行
正文完